package com.idp.web.dao;

import com.idp.common.base.BaseDao;
import com.idp.common.persistence.Page;
import com.idp.web.dto.OrderIndexListDTO;
import com.idp.web.dto.OrderListDTO;
import com.idp.web.entity.Orders;
import com.idp.web.vo.OrderSearchVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 医疗订单dao接口
 *
 * @author xubinren
 * @version 1.0
 * @date 2018/3/6
 */
public interface OrdersDao extends BaseDao<Orders, String> {

    /**
     * 根据条件分页查询订单列表
     *
     * @param orderSearchVo 查询信息
     * @param page    分页信息
     * @return Page<OrderListDTO>
     */
    List<OrderListDTO> selectPage(Page<OrderListDTO> page, OrderSearchVo orderSearchVo);

    /**
     * 根据条件分页查询订单列表
     *
     * @param page          分页信息
     * @param orderSearchVo 查询条件
     * @return Page<OrderIndexListDTO>
     */
    List<OrderIndexListDTO> findIndexByPage(Page<OrderIndexListDTO> page, OrderSearchVo orderSearchVo);

    /**
     * 根据订单编号查询订单信息
     *
     * @param orderCode 订单编号
     * @return Orders
     */
    Orders getByCode(@Param(value = "orderCode") String orderCode);

    /**
     * 查询订单的统计信息
     *
     * @param orderSearchVo 查询条件
     * @return Integer
     */
    Integer queryStatistics(OrderSearchVo orderSearchVo);

    /**
     * 查询首页订单的统计信息
     *
     * @param orderSearchVo 查询条件
     * @return int
     */
    Integer queryIndexStatistics(OrderSearchVo orderSearchVo);

}